Cloud services had been very popular in the recent decade. Cloud services are based on cloud computing to provide associated services or commodities without increasing burden on client side. Cloud computing involves a large number of computers connected through a communication network such as the Internet. It relies on sharing of resources to achieve coherence and economies of scale. At the foundation of cloud computing is the broader concept of converged infrastructure and shared services. Among all the shared services, memory and storage are definitely the two having maximum demand. This is because some hot applications, such as video streaming, require huge quantity of data to be stored. Management of memories and storages while the cloud services operate is very important to maintain normal service quality for the clients.
For example, a server used for providing cloud services usually manages or links to a number of Hard Disk Drives (HDDs). Clients access the server and data are read from or written to the HDDs. There are some problems, e.g. latency of response, due to limitation of the HDD system. Under normal operation of HDD system, the latency is usually caused by requirements of applications (i.e. workload), as the required access speed is higher than that the HDD system can support. Thus, the HDD system is a bottleneck to the whole system for the cloud service and reaches beyond the maximum capacity it can provide. Namely, the Input/output Operations Per Second (IOPS) of the HDD system cannot meet the requirements. For this problem, it is necessary to remove or reduce the workload to achieve and improve the efficiency of the server. In practice, partial of the workload can be shared by other servers (if any) or other HDDs are automatically or manually added on-line to support current HDDs. No matter which one of the above methods is used to settle the problem, its cost is to reserve a huge amount of HDDs for unexpected operating condition and necessary power consumption for the extra hardware. From an economic point of view, it is not worthy doing so. However, the shortest latency or minimum IOPS may be contracted in Service Level Agreement (SLA) and has to be practiced. For operators which have limited capital to maintain the cloud service, how to reduce the cost is an important issue.
It is worth noting that workload of the server (HDD system) more or less can be predicted in a period of time in the future based on historical records. Possibly, a trend of development of the requirement for the cloud service can be foreseen. Therefore, reconfiguration of the HDDs in the HDD system can be performed to meet the workload with minimum cost. However, a machine is not able to learn how and when to reconfigure the HDDs. In many circumstances, this job is done by authorized staff according to real time status or following stock schedule. Performance may not be very good.
Another increasing demand as well as the cloud service is software defined storage. Software defined storage refers to computer data storage technologies which separate storage hardware from the software that manages the storage infrastructure. The software enabling a software defined storage environment provides policy management for feature options, such as deduplication, replication, thin provisioning, snapshots, and backup. With software defined storage technologies, there are several prior arts providing solutions to the aforementioned problem. For example, in US Patent Application No. 20130297907, a method for reconfiguring a storage system is disclosed. The method includes two main steps: receiving user requirement information for a storage device and automatically generating feature settings for the storage device from the user requirement information and a device profile for the storage device; and using the feature settings to automatically reconfigure the storage device into one or more logical devices having independent behavioral characteristics. Throughout the text of the application, it points out a new method to reconfigure storage devices by the concept of software defined storage. The method and system according to the application can also allow users to dynamically adjust configuration of the one or more logical devices to meet the user requirement information with more flexibility. However, the application doesn't disclose how the feature settings are generated. Meanwhile, the feature settings can't be changed according to the change of different applications (i.e. workload).
Therefore, the present invention discloses a new system to implement configuration for a software defined storage so as to settle the problems mentioned above. It utilizes an adaptive fuzzy rule control and operates without human intervention. By applying the present invention, a configuration of storage devices fulfilling any workload can be calculated dynamically. Reconfiguration of the storage devices can be done in the particular point in time in the future.